/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.core.beans;

import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import pe.core.MillionFactory;
import pe.core.db.AnuncioDto;
import pe.core.util.Matcher;

/**
 *
 * @author romulogalindo
 */
public class ImagenMap implements Serializable {

    private int itemsX;
    private int itemsY;

    private List<AnuncioDto> items;

    public ImagenMap() {
//        items = new ArrayList<Item>();
//        for (int y = 0; y < 1000; y = y + 10) {
//            for (int x = 0; x < 1000; x = x + 10) {
//                Item item = new Item();
//                item.setId(x + "" + y);
//                item.setX(x);
//                item.setY(y);
//                item.setX1(x + 10);
//                item.setY1(y + 10);
//                item.setShape("rect");
//                item.setTarget("_blank");
//                item.setTitle("Item disponible (" + x + "," + y + ")");
//                items.add(item);
//            }
////            System.out.println("");
//        }
//        List ls = getFile_Item();
//
//        //el primer SP va desde el pixel 0,0 hasta el 60,70
//        Item item = new Item();
//        item.setId("006070");
//        item.setXe(true);
//        item.setX(0);
//        item.setY(0);
//        item.setX1(60);
//        item.setY1(70);
//        item.setShape("rect");
//        item.setHref("http://workflow.accesocrediticio.com");
//        item.setTarget("_blank");
//        item.setTitle("EDPYME ACCESO CREDITICIO");
//
//        for (int y = 0; y < 60; y = y + 10) {
//            for (int x = 0; x < 70; x = x + 10) {
//                final String s = "" + y + "" + x;
//                List l = searchIn(items,
//                        new Matcher<Item>() {
//                            public boolean matches(Item p) {
//                                return p.getId().equals(s);
//                            }
//                        });
//                items.remove(l.get(0));
//            }
//        }
//
//        items.add(item);
        items = MillionFactory.maplist();
        System.out.println("i:" + items.size());
    }

    public int getItemsX() {
        return itemsX;
    }

    public void setItemsX(int itemsX) {
        this.itemsX = itemsX;
    }

    public int getItemsY() {
        return itemsY;
    }

    public void setItemsY(int itemsY) {
        this.itemsY = itemsY;
    }

    public List<AnuncioDto> getItems() {
        return items;
    }

    public void setItems(List<AnuncioDto> items) {
        this.items = items;
    }

    public List<File> getFile_Item() {
        File folder = new File("fix");
        List<File> r = new ArrayList<File>();
        try {
            System.out.println(">>" + folder.getPath());
            System.out.println(">>" + folder.getCanonicalPath());
            System.out.println(">>" + folder.getAbsolutePath());
            File[] l = folder.listFiles();
            for (File fileEntry : folder.listFiles()) {
                if (fileEntry.isFile()) {
                    r.add(fileEntry);
                }
            }
        } catch (Exception ep) {
            System.out.println(">ep:" + ep.getMessage());
        }
        return r;
    }

    public static <T> List<T> searchIn(List<T> list, Matcher<T> m) {
        List<T> r = new ArrayList<T>();
        for (T t : list) {
            if (m.matches(t)) {
                r.add(t);
            }
        }
        return r;
    }

}
